Jump To:
Technical Q&As
Apple provides opportunities for developers to create hardware devices, including memory, mass storage, PCI, CardBus, USB, FireWire, and wireless solutions. Developer notes listed in the Apple Hardware topic provide relevant connector, cabling, and pin-out information, physical dimensions, electrical and thermal requirements, and pointers and references to standards.

Hardware Resources
A guided introduction and learning path to developing hardware and device-level software for Apple's computers and servers.  
Document Descriptions
On Off
Display

Sort by
Title
Sorted by
Topic
Sort by
Date
Working with Configuration Variables (HTML) ()
QA1119: Explains how to delete a specific Open Firmware configuration variable without using Command-Option-P-R.
Device Drivers 2002-02-13
Adding dependencies with kmodload (HTML)
QA1097: Illustrates how to specify dependencies when using kmodload.
Ethernet 2001-12-05
Are interrupts enabled while Open Firmware is running? (HTML) ()
HW44: Explains that interrupts are disabled when Open Firmware is running.
Ethernet 1999-02-15
Changing the TCP Window Size (HTML)
NW47: Describes how to change the TCP window size in Open Transport.
Ethernet 1997-03-14
The "chosen" node in the device tree (HTML)
HW88: Describes how to find the "chosen" node in the Open firmware device tree.
Ethernet 2000-09-05
Determining Open Firmware configuration variables (HTML) ()
HW56: Discusses how to determine the Open Firmware variables on a system.
Ethernet 1999-03-29
The dreaded "incompatible flag -framework" error (HTML)
QA1096: Explains how to eliminate the incompatible flag -framework error in Project Builder.
Ethernet 2001-12-05
Expansion ROM device properties (HTML) ()
HW50: Describes the Open Firmware properties that should be included in a boot device's expansion ROM.
Ethernet 1999-03-29
Generating an NMI Without a Programmer's Switch (HTML) ()
QA1264: Explains how to generate a non-maskable interrupt (NMI) on CPUs without programmer's switches.
Ethernet 2004-04-26
Getting started with Forth (HTML) ()
HW53: Describes where FCode driver developers can get information about the Forth programming language.
Ethernet 1999-03-29
Installing an I/O Kit KEXT Without Rebooting (HTML)
QA1319: Describes the state of the art of installing I/O Kit kernel extensions (KEXTs) without requiring a restart.
Ethernet 2003-10-28
IODeviceTree & the IORegistry (HTML) ()
QA1120: Describes the IODeviceTree plane in the Mac OS X IORegistry.
Ethernet 2002-02-13
IOKit Framework Headers (HTML) ()
QA1107: Describes the differences between the headers in IOKit.framework and the I/O Kit headers in Kernel.framework.
Ethernet 2002-01-15
Is the Open Firmware device tree object oriented? (HTML)
HW80: Discusses the object-oriented attributes of the Open Firmware device tree.
Ethernet 1999-11-15
Issues with boot time KEXT loading (HTML) ()
QA1087: Explains how to solve problems with loading KEXTs at boot time.
Ethernet 2004-01-15
Making sense of IOKit error codes (HTML) ()
QA1075: Explains how to interpret I/O Kit error codes.
Ethernet 2002-02-07
The "packages" node in the device tree (HTML)
HW90: Describes the "packages" node in the Open Firmware device tree.
Ethernet 2000-09-05
PCI Type 1 Cycles (HTML)
HW26: Describes the circumstances when the PowerMac generates a Configuration Type 1 command.
Ethernet 1995-07-15
Sample code for allocating an amount of dictionary space (HTML)
HW71: Discusses the allocation and the setting of memory for Dictionary space in Open Firmware.
Ethernet 1999-10-11
What are configuration variables in Open Firmware? (HTML) ()
HW38: Defines the configuration variables in Open Firmware.
Ethernet 1999-02-15
What is the "dump" word and how do I use it? (HTML)
HW68: Describes the function of the Open Firmware word "dump" and how it can be used.
Ethernet 1999-10-11
What numeric base is the default for the Open Firmware user interface? (HTML)
HW65: Describes how the default numeric base used by the Open Firmware user interface is hexadecimal.
Ethernet 1999-10-11
Why did the name of the PCI bridge change? (HTML) ()
HW59: Explains the name change of the PCI bridge to the generic name "pci" in Open Firmware.
Ethernet 1999-03-29
Are interrupts enabled while Open Firmware is running? (HTML) ()
HW44: Explains that interrupts are disabled when Open Firmware is running.
Fibre Channel 1999-02-15
Determining Open Firmware configuration variables (HTML) ()
HW56: Discusses how to determine the Open Firmware variables on a system.
Fibre Channel 1999-03-29
Expansion ROM device properties (HTML) ()
HW50: Describes the Open Firmware properties that should be included in a boot device's expansion ROM.
Fibre Channel 1999-03-29
Generating an NMI Without a Programmer's Switch (HTML) ()
QA1264: Explains how to generate a non-maskable interrupt (NMI) on CPUs without programmer's switches.
Fibre Channel 2004-04-26
Getting started with Forth (HTML) ()
HW53: Describes where FCode driver developers can get information about the Forth programming language.
Fibre Channel 1999-03-29
Installing an I/O Kit KEXT Without Rebooting (HTML)
QA1319: Describes the state of the art of installing I/O Kit kernel extensions (KEXTs) without requiring a restart.
Fibre Channel 2003-10-28
IODeviceTree & the IORegistry (HTML) ()
QA1120: Describes the IODeviceTree plane in the Mac OS X IORegistry.
Fibre Channel 2002-02-13
IOKit Framework Headers (HTML) ()
QA1107: Describes the differences between the headers in IOKit.framework and the I/O Kit headers in Kernel.framework.
Fibre Channel 2002-01-15
Is the Open Firmware device tree object oriented? (HTML)
HW80: Discusses the object-oriented attributes of the Open Firmware device tree.
Fibre Channel 1999-11-15
The "packages" node in the device tree (HTML)
HW90: Describes the "packages" node in the Open Firmware device tree.
Fibre Channel 2000-09-05
PCI Type 1 Cycles (HTML)
HW26: Describes the circumstances when the PowerMac generates a Configuration Type 1 command.
Fibre Channel 1995-07-15
Sample code for allocating an amount of dictionary space (HTML)
HW71: Discusses the allocation and the setting of memory for Dictionary space in Open Firmware.
Fibre Channel 1999-10-11
SCSIAction and IOSCSIUserClient on Mac OS X 10.2 (HTML) ()
QA1201: Describes migrating to a new API for SCSI Parallel devices starting with Mac OS X 10.2.
Fibre Channel 2002-09-13
Sending SCSI commands to storage devices (HTML) ()
QA1179: Explains that Mac OS X does not implement SCSI pass-through for many mass storage devices.
Fibre Channel 2002-08-06
What are configuration variables in Open Firmware? (HTML) ()
HW38: Defines the configuration variables in Open Firmware.
Fibre Channel 1999-02-15
What is the "dump" word and how do I use it? (HTML)
HW68: Describes the function of the Open Firmware word "dump" and how it can be used.
Fibre Channel 1999-10-11
What numeric base is the default for the Open Firmware user interface? (HTML)
HW65: Describes how the default numeric base used by the Open Firmware user interface is hexadecimal.
Fibre Channel 1999-10-11
Why did the name of the PCI bridge change? (HTML) ()
HW59: Explains the name change of the PCI bridge to the generic name "pci" in Open Firmware.
Fibre Channel 1999-03-29
Adding dependencies with kmodload (HTML)
QA1097: Illustrates how to specify dependencies when using kmodload.
FireWire 2001-12-05
Are interrupts enabled while Open Firmware is running? (HTML) ()
HW44: Explains that interrupts are disabled when Open Firmware is running.
FireWire 1999-02-15
Available FireWire Isochronous Bandwidth (HTML)
QA1356: Discusses attempting to "pre-flight" an isochronous bandwidth allocation request by reading the currently available bandwidth.
FireWire 2004-07-07
Determining Open Firmware configuration variables (HTML) ()
HW56: Discusses how to determine the Open Firmware variables on a system.
FireWire 1999-03-29
The dreaded "incompatible flag -framework" error (HTML)
QA1096: Explains how to eliminate the incompatible flag -framework error in Project Builder.
FireWire 2001-12-05
Expansion ROM device properties (HTML) ()
HW50: Describes the Open Firmware properties that should be included in a boot device's expansion ROM.
FireWire 1999-03-29
Generating an NMI Without a Programmer's Switch (HTML) ()
QA1264: Explains how to generate a non-maskable interrupt (NMI) on CPUs without programmer's switches.
FireWire 2004-04-26
Getting started with Forth (HTML) ()
HW53: Describes where FCode driver developers can get information about the Forth programming language.
FireWire 1999-03-29
Installing an I/O Kit KEXT Without Rebooting (HTML)
QA1319: Describes the state of the art of installing I/O Kit kernel extensions (KEXTs) without requiring a restart.
FireWire 2003-10-28
IODeviceTree & the IORegistry (HTML) ()
QA1120: Describes the IODeviceTree plane in the Mac OS X IORegistry.
FireWire 2002-02-13
IOKit Framework Headers (HTML) ()
QA1107: Describes the differences between the headers in IOKit.framework and the I/O Kit headers in Kernel.framework.
FireWire 2002-01-15
Is the Open Firmware device tree object oriented? (HTML)
HW80: Discusses the object-oriented attributes of the Open Firmware device tree.
FireWire 1999-11-15
Issues with boot time KEXT loading (HTML) ()
QA1087: Explains how to solve problems with loading KEXTs at boot time.
FireWire 2004-01-15
Making sense of IOKit error codes (HTML) ()
QA1075: Explains how to interpret I/O Kit error codes.
FireWire 2002-02-07
Open Firmware and the devalias node (HTML)
HW95: Describes why the contents of the Open Firmware devalias node varies between Macintosh models.
FireWire 2000-09-05
The "packages" node in the device tree (HTML)
HW90: Describes the "packages" node in the Open Firmware device tree.
FireWire 2000-09-05
PCI Type 1 Cycles (HTML)
HW26: Describes the circumstances when the PowerMac generates a Configuration Type 1 command.
FireWire 1995-07-15
Retain Counts of io_object_t Objects in IOKit.framework (HTML) ()
QA1195: Distinguishes between the retain counts of an I/O Kit kernel object and its io_object_t user space proxy.
FireWire 2002-09-04
Sample code for allocating an amount of dictionary space (HTML)
HW71: Discusses the allocation and the setting of memory for Dictionary space in Open Firmware.
FireWire 1999-10-11
SCSIAction and IOSCSIUserClient on Mac OS X 10.2 (HTML) ()
QA1201: Describes migrating to a new API for SCSI Parallel devices starting with Mac OS X 10.2.
FireWire 2002-09-13
Sending SCSI commands to storage devices (HTML) ()
QA1179: Explains that Mac OS X does not implement SCSI pass-through for many mass storage devices.
FireWire 2002-08-06
Sequence Grabber - Video capture with multiple IIDC cameras (HTML)
QA1365: Discusses factors which influence the number of IIDC cameras that can simultaniously be used for capture.
FireWire 2004-08-25
Use the Doorbell (HTML) ()
Deprecated - FW01: Explains the function of the FireWire Serial Bus Protocol 2 (SBP2) doorbell.
FireWire 1999-05-17
What are configuration variables in Open Firmware? (HTML) ()
HW38: Defines the configuration variables in Open Firmware.
FireWire 1999-02-15
What are snag keys in Open Firmware? (HTML) ()
HW35: Explains Open Firmware snag keys, including examples of their function.
FireWire 1999-02-15
What is the "dump" word and how do I use it? (HTML)
HW68: Describes the function of the Open Firmware word "dump" and how it can be used.
FireWire 1999-10-11
What is unsolicited status? (HTML) ()
FW03: Explains the meaning and usage of the SBP-2 unsolicited status message.
FireWire 1999-05-17
What numeric base is the default for the Open Firmware user interface? (HTML)
HW65: Describes how the default numeric base used by the Open Firmware user interface is hexadecimal.
FireWire 1999-10-11
Why did the name of the PCI bridge change? (HTML) ()
HW59: Explains the name change of the PCI bridge to the generic name "pci" in Open Firmware.
FireWire 1999-03-29
Are interrupts enabled while Open Firmware is running? (HTML) ()
HW44: Explains that interrupts are disabled when Open Firmware is running.
Human Interface Device & Force Feedback 1999-02-15
Determining Open Firmware configuration variables (HTML) ()
HW56: Discusses how to determine the Open Firmware variables on a system.
Human Interface Device & Force Feedback 1999-03-29
Driver Gestalt & Icon Services (HTML) ()
DV37: Describes the interaction of Driver Gestalt & Icon Services
Human Interface Device & Force Feedback 1999-10-05
Expansion ROM device properties (HTML) ()
HW50: Describes the Open Firmware properties that should be included in a boot device's expansion ROM.
Human Interface Device & Force Feedback 1999-03-29
Generating an NMI Without a Programmer's Switch (HTML) ()
QA1264: Explains how to generate a non-maskable interrupt (NMI) on CPUs without programmer's switches.
Human Interface Device & Force Feedback 2004-04-26
Getting started with Forth (HTML) ()
HW53: Describes where FCode driver developers can get information about the Forth programming language.
Human Interface Device & Force Feedback 1999-03-29
HID Manager Event Data Underruns (HTML)
QA1038: Explains how to correctly handle HID Manager event queue data underruns.
Human Interface Device & Force Feedback 2001-06-13
Installing an I/O Kit KEXT Without Rebooting (HTML)
QA1319: Describes the state of the art of installing I/O Kit kernel extensions (KEXTs) without requiring a restart.
Human Interface Device & Force Feedback 2003-10-28
IODeviceTree & the IORegistry (HTML) ()
QA1120: Describes the IODeviceTree plane in the Mac OS X IORegistry.
Human Interface Device & Force Feedback 2002-02-13
IOKit Framework Headers (HTML) ()
QA1107: Describes the differences between the headers in IOKit.framework and the I/O Kit headers in Kernel.framework.
Human Interface Device & Force Feedback 2002-01-15
Is the Open Firmware device tree object oriented? (HTML)
HW80: Discusses the object-oriented attributes of the Open Firmware device tree.
Human Interface Device & Force Feedback 1999-11-15
Issues with boot time KEXT loading (HTML) ()
QA1087: Explains how to solve problems with loading KEXTs at boot time.
Human Interface Device & Force Feedback 2004-01-15
The "packages" node in the device tree (HTML)
HW90: Describes the "packages" node in the Open Firmware device tree.
Human Interface Device & Force Feedback 2000-09-05
PCI Type 1 Cycles (HTML)
HW26: Describes the circumstances when the PowerMac generates a Configuration Type 1 command.
Human Interface Device & Force Feedback 1995-07-15
Retain Counts of io_object_t Objects in IOKit.framework (HTML) ()
QA1195: Distinguishes between the retain counts of an I/O Kit kernel object and its io_object_t user space proxy.
Human Interface Device & Force Feedback 2002-09-04
Sample code for allocating an amount of dictionary space (HTML)
HW71: Discusses the allocation and the setting of memory for Dictionary space in Open Firmware.
Human Interface Device & Force Feedback 1999-10-11
SDRAM Problems With Self-Powered USB Devices (HTML) ()
HW82: Alerts that non-compliant, self-powered USB devices plugged into a G4, can cause problems with low-voltage-sensitive SDRAM .
Human Interface Device & Force Feedback 2003-08-21
What is the "dump" word and how do I use it? (HTML)
HW68: Describes the function of the Open Firmware word "dump" and how it can be used.
Human Interface Device & Force Feedback 1999-10-11
What numeric base is the default for the Open Firmware user interface? (HTML)
HW65: Describes how the default numeric base used by the Open Firmware user interface is hexadecimal.
Human Interface Device & Force Feedback 1999-10-11
Why did the name of the PCI bridge change? (HTML) ()
HW59: Explains the name change of the PCI bridge to the generic name "pci" in Open Firmware.
Human Interface Device & Force Feedback 1999-03-29
Are interrupts enabled while Open Firmware is running? (HTML) ()
HW44: Explains that interrupts are disabled when Open Firmware is running.
Mac OS X Server 1999-02-15
Determining Open Firmware configuration variables (HTML) ()
HW56: Discusses how to determine the Open Firmware variables on a system.
Mac OS X Server 1999-03-29
Expansion ROM device properties (HTML) ()
HW50: Describes the Open Firmware properties that should be included in a boot device's expansion ROM.
Mac OS X Server 1999-03-29
Generating an NMI Without a Programmer's Switch (HTML) ()
QA1264: Explains how to generate a non-maskable interrupt (NMI) on CPUs without programmer's switches.
Mac OS X Server 2004-04-26
Getting started with Forth (HTML) ()
HW53: Describes where FCode driver developers can get information about the Forth programming language.
Mac OS X Server 1999-03-29
Installing an I/O Kit KEXT Without Rebooting (HTML)
QA1319: Describes the state of the art of installing I/O Kit kernel extensions (KEXTs) without requiring a restart.
Mac OS X Server 2003-10-28
IOKit Framework Headers (HTML) ()
QA1107: Describes the differences between the headers in IOKit.framework and the I/O Kit headers in Kernel.framework.
Mac OS X Server 2002-01-15
Is the Open Firmware device tree object oriented? (HTML)
HW80: Discusses the object-oriented attributes of the Open Firmware device tree.
Mac OS X Server 1999-11-15
The "packages" node in the device tree (HTML)
HW90: Describes the "packages" node in the Open Firmware device tree.
Mac OS X Server 2000-09-05
PCI Type 1 Cycles (HTML)
HW26: Describes the circumstances when the PowerMac generates a Configuration Type 1 command.
Mac OS X Server 1995-07-15